//  @ Project : SSU Robot Simulator
//  @ File Name : Robot.h
//  @ Date : 4/4/2011
//  @ Author : Andrew Holbrook
//
//

#pragma once

#if !defined(_ROBOT_H)
#define _ROBOT_H

#include <vector>

#include "Joint.h"
#include "Frame.h"

using std::vector;

namespace SSURoboSim
{
	namespace Kinematics
	{
		class Robot
		{
		public:
			~Robot();

			virtual void glTransform(unsigned int f);
			virtual void update(unsigned int dtime);

		protected:
			Robot();

			void addPrismaticJoint(Joint &j);
			void addRevoluteJoint(Joint &j);
			void addFrame(Frame &f) { frames_.push_back(f); }

		private:
			vector<Joint *> joints_;
			vector<Frame> frames_;
		};
	}
}

#endif  //_ROBOT_H
